Embedded data stored in electronic circuitry is typically available for reading at any time as needed by when using a computer. A good example is the basic input output system code and data stored in permanent read only memory used by the computer. Another example is permanent data stored in a dongle attached to a computer. When the security data is repeatedly accessible to more than one program running on the computer, authorized or not, the security of the computer can be more easily compromised.
There are some devices used for security purpose. For example, YUBIKEY is a dongle connected into the computer/device's universal serial bus and used to generate a six or eight characters time-based one-time password (OTP) (in conjunction with a helper application) for logging into some third-party websites using a strong authentication standard with the use of encryption. A new password is generated at a set time interval, typically every thirty seconds.
If a single security key is to be available only to authorized programs and only available at the start up or reset of the computer, then an electronic circuitry must enable the security key to be available only once and thereafter be disabled.
FIG. 4 illustrates related technology from applicant's disclosures in U.S. patent application Ser. No. 15/839,450 (the “450 application). The present disclosure utilizes these disclosures and presents unique improvements thereto. The “450 application teaches using permanent memory (400) in an electronic device to hold stored keys (402). It further discloses that at power-up of the computer a transfer of the stored keys (402) through a timer/trigger and tri-state gate combination (404) to a temporary memory (406). It further teaches that a copy-of-the-keys (408) is made from the stored keys (402). After a time-threshold has elapsed, the timer/trigger and tri-state gate combination (404) is turned off and the stored keys (402) cannot be transferred (i.e. copied) a second time to the temporary memory (406).
The '450 application also teaches transferring the copy-of-the-keys (408) to a driver in the computer. The driver then deletes the copy-of-the-keys (408) from the temporary memory (406). The '450 application further teaches a combination of FIG. 4-timer/trigger (410) and a Read Only Basic Input and Output System (412) working together to disable the tri-state gate (414) when necessary to prevent the copy-of-the-keys (408) from being read by an unauthorized program at power-up of the computer and before the driver is loaded into the computer's memory.
FIG. 6 illustrates the running of a child process. A child process is a process initiated by another process, which is then termed “the parent process.” The child process will typically possess some characteristics of the parent process and the two may communicate as needed. The child process is usually under the control of the parent process. The operating systemPA (600) initiates (sixth single-headed arrow line (605)) the software driver or software applicationPA (610). Then, the software driver or software applicationPA (610) requests (see the fifth single-headed arrow line (615)) the operating systemPA (600) to load a program. Then the operating systemPA (600) loads (fourth single-headed arrow line (635)) the program which is considered a child process (namely, child processPA (620)). Then, the operating systemPA (600) loads (see the seventh single-headed arrow line (625)) the child processPA (620) and the child processPA (620) software code, namely CodePA (630), is loaded in the computer's memory and executed by the central processing unit of the computer. Once the execution of the codePA (630) comes to an end, the child processPA (620) communicates back (see the seventh single-headed arrow line (625)) to the parent process, to the software driver or to the software applicationPA (610).